console.log("在promise调用链中添加 异步 任务")

/**
 * 当从完成处理函数返回一个 promise 时，它会被展开并有可能延迟下一个步骤。
 * 从拒绝处理函数返回 promise 也是如此
 * */
Promise.resolve(1).then(value => {

    console.log("第二步开始",value)

    //返回一个 promise 对象
    return new Promise(resolve => {
        setTimeout(()=>{
            const result = value+1
            console.log("第二步执行完成",result)
            resolve(result)
        },500)
    })
}).then(val=>{
    console.log("第三步开始",val)

    // 返回一个 thenable
    return Promise.resolve({
        then: callBack=>{
            setTimeout(()=>{
                const result = val+1
                console.log("第三步异步结束",result)
                callBack(result)
            },500)

        }
    })
}).then(val=>{
    console.log("异步链的最终结果",val)
})
